﻿package framework.core;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class UniversalRow
{
	private Map map = new HashMap(); 
	private ArrayList nameIndexList = new ArrayList();
	
	public void initObject(ResultSet rs) throws Exception
	{
		ResultSetMetaData rsMetaData = rs.getMetaData();
		int columnCount = rsMetaData.getColumnCount();
		nameIndexList.add(0, "List Start");
		for(int i=1; i<=columnCount; i++)
		{
			String columnName = rsMetaData.getColumnName(i);
			nameIndexList.add(i, columnName);
//			int columnType = rsMetaData.getColumnType(i);
			map.put(columnName, rs.getString(i));
		}
	}
	
	public int getColumnNameIndex(String columnName)
	{
		return nameIndexList.indexOf(columnName);
	}
	
	public int getInt(int index)
	{
		return Integer.parseInt((String)map.get(nameIndexList.get(index)));
	}
	public int getInt(String columnName)
	{
		return Integer.parseInt((String)map.get(columnName));
	}
	
	public double getDouble(int index)
	{
		return Double.parseDouble((String)map.get(nameIndexList.get(index)));
	}
	public double getDouble(String columnName)
	{
		return Double.parseDouble((String)map.get(columnName));
	}	
	
	public String getString(int index)
	{
		return (String)map.get(nameIndexList.get(index));
	}
	public String getString(String columnName)
	{
		return (String)map.get(columnName);
	}
//	public Object getValue(ResultSet rs, int i, int columnType)
//	{
//		switch(columnType)
//		{
//			case Types.INTEGER :
//				return rs.getInt(i);
//				break;
//			case Types.DOUBLE :
//			case Types.FLOAT :
//				return rs.getDouble(i);
//				break;
//			default :
//				return rs.getString(i);
//		}
//	}
}
